EVAL Library fr VB/DOS

INHALT

    A - Was sehe ich denn hier
    B - Was habe ich bekommen
    C - Was knnte ich kriegen
    D - Wie benutze ich das EVAL-Utility
    E - Verschiedenes

A
Was sehe ich denn hier
-----------------------
 EVAL01.OBJ     - Objektdatei: enthlt EVAL-Routinen
 EVAL.EXE       - Beispiel: bentigt VBDRT10E.EXE
 EVAL.QLB       - QuickLibrary: enthlt EVAL-Routinen fr VB/DOS
 EVAL.LIB       - Library zum linken der EVAL-Routinen
 EVAL02.FRM     - Beispiel: Zeigt wie man EVAL-Routinen benutzt
 EVAL.TXT       - Dies hier auf englisch (so gut ich's kann)
 DEUTSCH.TXT    - Sie lesen die Datei gerade.
 CHECKOUT.BAT   - Batch startet VBDOS mit dem Beispiel.

B
Was habe ich bekommen
----------------------
 Eval ist eine komplette Library (QLB und LIB) fr VBDOS-Programmierer.
Nun knnen Sie programme schreiben, die artithmetische Ausdrcke
zur Laufzeit auswerten.  Das heit Ihre Anwender tippen sowas wie
"3+4,9*18" ein und erhalten das Ergebnis. Die Library untersttzt
folgende arithmetische Funktionen:

    - Addition (+)
    - Subtraktion (-)
    - Multiplikation (*)
    - Division (/)
    - Exponentiation (^)
    - Negation (-)

Dezimaltrennzeichen, die die Library unterscheiden kann:

    - . fr die USA
    - , fr Deutschland

Ergebnisse knnen wie folgt formatiert werden:

    USA                  Deutschland
    ---------------------------------------
  - left alignment       linksbndig
  - right alignment      rechtsbndig
  - centered             zentriert

Die Library arbeitet mit folgenden Bedienelementen

    - Label
    - Textbox
    - Combobox


C
Was knnte ich kriegen
-----------------------
 Obwohl Sie schon alles haben, was Sie bentigen, um EXE-Dateien
compilieren zu knnen, bentigen sie vielleicht den Quellcode,
um genau zu erkunden, wie die Library arbeitet. Die Dokumentation,
die mit allen Quelltexten ausgeliefert wird zeigt Ihnen genau
dies, ebenso behandelt sie Themen wie: "Benutzung von Binrflags"
und "Entwerfen und Schreiben rekursiver Funktionen".

 Dieses Angebot ist ist verfgbar in Englisch und Deutsch und
die Lizensierung lohnt sich. Dokumentation und Quellcode kosten
entweder 10 US-Dollar oder 15 DM incl. Versand. Ausgeliefert wird
es auf 3.5" Disketten, oder via E-Mail fr Compuserve Mitglieder.

D
Wie benutze ich das EVAL-Utility
---------------------------------
1.
a) CHECKOUT.BAT ausfhren oder
b) VBDOS starten: VBDOS /L EVAL.QLB /AH/ES
   - EVAL02.FRM laden und testen

2.
Ihre Anwendung mu folgende Prozeduren kennen:

DECLARE FUNCTION EvalReg% ()
DECLARE SUB EvalSetcboFmt (a AS CONTROL, b AS CONTROL)
DECLARE FUNCTION evaluate% (TextBox AS CONTROL, Label AS CONTROL, fmt$)

EvalReg% liefert den Funktionswert TRUE, wenn die Registrierung
erfolgreich war. Ihre Anwendung mu die EVAL-Funktionen registrieren,
weil die Library zunchst einige lnderspezifische Einstellungen
(vor allem das Dezimaltrennzeichen) ermitteln mu, und sie mu
sich Speicherplatz reservieren, der spter benutzt wird. Also, bevor
Sie irgendwelche Eval-Lib-Prozeduren aufrufen, versichern Sie sich,
da ihre Anwendung zuerst EvalReg erfolgreich abgeschlossen hat.

Eine type Registrierung:

    IF EvalReg THEN
    ' if registration succeeded ...
        EvalSetcboFmt cboFmt, cboAlignment
        cboFmt.ListIndex = 0
        cboAlignment.ListIndex = 0
    ELSE
    ' if registration failed you may not use any of the
    ' eval-lib-routines
        UNLOAD frmEval02
    END IF

EvalSetCboFmt fllt zwei Combo-Boxen. cboFmt beinhaltet
numerische Formatierungen, hnlich denen, die BASICS Format$-
Funktion benutzt, mit der Ausnahme, da sie Lnderspezifisch
aussehen. Also, wir in Deutschland benutzen fr die Zahl, die
in BASIC "0.5" geschrieben wrde "0,5". Die Anwender von Software
finden es daher irritierend, da sie zur Formatierung den Punkt
als Dezimaltrennzeichen verwenden sollen. Daher trgt EvalSetCboFmt
diese Format-Strings lnderspezifisch ein. Da sich Eval-Lib um
die Konvertierungen kmmert, knnen Sie es beim Programmieren
vergessen. Die zweite Kombo-Box, cboAlignment, wird mit den
Alignment-Eigenschaften eines Labels gefllt. 0=linksbndig
1=rechtsbndig 2=zentriert. Dies geschieht entweder auf Englisch
oder Deutsch. EvalSetCboFmt bedient die Anwender ihres Programms
genau so, wie sie es brauchen, da es lnderspezifische Einstellungen
zur Laufzeit auswertet.

Sollten Sie andere lnderspezifische Einstellungen bercksichtigen
wollen (mssen), so erwerben Sie bitte die oben beschriebene
Lizenz, da sie den Quellcode der Library dazu anpassen und neu
compilieren mssen.

hier nun eine typische Sequenz, die eine Formel auswertet:

    ' 1. bestimme die Formatierung
        fmt$ = cboFmt.Text
    ' 2. bertrage das Ergebnis der Funktion evaluate in den Integer
    ' TEST. txtFormular ist ein Textbox-Control, dessen TEXT-Eigenschaft
    ' den auszuwertenden arithmetischen Ausdruck enthlt. FMT$ ist der
    ' Format-String. lblResult ist ein Label-Control, das evaluate
    ' bentigt, um in die Caption-Eigenschaft das formatierte Ergebnis
    ' zu speichern.
    test=evaluate(txtFormular, lblResult,fmt$)

    ' evaluate benutzt Basic-Fehler-Codes um Fehler anzuzeigen.
    ' Falls kein Fehler auftrat, ist der Funktionswert FALSE,
    ' andernfalls sollte man den Anwender darauf aufmerksam machen,
    ' das irgendwas an seiner Formel nicht in Ordnung ist.
    IF Test THEN MSGBOX ERROR$(Test), 0, caption

Die Funktion evaluate bentigt drei Parameter. Zunchst die TextBox,
deren TEXT-Eigenschaft einen arithmetischen Ausdruck enthlt. Zweitens
ein Label-Control. Evaluate schreibt das Ergebnis des arithmetischen
Ausdrucks in die CAPTION-Eigenschaft des Labels. Drittens: Der Format-
Parameter FMT$. evaluate bentigt diesen, um das Ergebnis zu formatieren,
bevor es in die Caption-Eigenschaft des Labels gespeichert wird. Ein
Null-String bedeuted: Keine Formatierung.

E
Verschiedenes
---------------
EVAL.Lib benutzt doppelt genaue Fliekommazahlen um das Ergebnis
der Formel auszurechnen.

EVAL01.OBJ wurde wie folgt erzeugt:

    bc eval01.bas /g3/ah/t/c:512

Peter Benwar-Wagner ist der Autor von EVAL.LIB.

Solange Sie EVAL.LIB privat benutzen ist es freeware. Sobald Sie
Ihre Anwendung mit EVAL.LIB linken und ffentlich verbreiten,
entweder als kommerzielle Software, als Shareware oder als Freeware,
mssen sie eine Lizens erwerben.

Copyright 1997 by Peter Benwar-Wagner, Remscheid.
Alle Rechte vorbehalten.

